package com.yq.ylmall.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yq.ylmall.dto.product.ProductSpecQueryDto;
import com.yq.ylmall.model.product.ProductSpec;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yq.ylmall.vo.product.ProductSpecPageVo;

import java.util.List;

/**
 * <p>
 * 商品规格 服务类
 * </p>
 *
 * @author yzk789
 * @since 2024-05-30
 */
public interface IProductSpecService extends IService<ProductSpec> {

    /**
     * 分页查询商品规格
     * @param dto {@link ProductSpecQueryDto}
     * @return IPage <{@link ProductSpecPageVo}>
     */
    IPage<ProductSpecPageVo> queryProductSpec(ProductSpecQueryDto dto);

    /**
     * 根据ID添加商品规格
     * @param dto {@link ProductSpec}
     */
    void addProductSpec(ProductSpec dto);

    /**
     * 根据ID删除商品规格
     * @param id 商品规格ID
     */
    void removeProductSpec(Long id);
    /**
     * 根据商品ID查询商品规格所有相关信息
     * @param productSpecId 商品ID
     * @return {@link ProductSpecPageVo}
     */
    ProductSpecPageVo getProductSpecInfoById(long productSpecId);

    /**
     *  根据商品ID修改商品规格相关信息
     * @param dto {@link ProductSpec}
     */
    void updateProductSpecById(ProductSpec dto);

    /**
     * 根据商品规格名称查询信息
     * @param specName
     * @return {@link ProductSpecPageVo}
     */
    IPage<ProductSpecPageVo> getProductSpecInfoByName(String specName);
}
